package com.example.easyscript.service.master.intf;

import com.example.easyscript.bean.task.TaskBean;
import com.example.easyscript.dto.Req.AddTaskReq;
import com.example.easyscript.dto.Resp.ManagerInfoReq;
import com.example.easyscript.dto.Resp.RunningTaskInfo;

import java.util.List;

/**
 * 任务管理器
 */
public interface TaskManagerService {

    /**
     * 获取下一个需要执行的任务
     *
     * @return 任务类
     */
    TaskBean getNextTask() throws Exception;

    /**
     * 加入一个新的任务
     * @param addTaskReq
     */
    void addTask(AddTaskReq addTaskReq);
    void addTask(Integer addTaskReq);
    /**
     * 剔除一个任务
     */
    void deleteTask(Integer taskId);

    /**
     * 停止一个任务
     */
    void stopTask(Integer taskId);


    void initManager() ;

    void cleanAll();

    List<RunningTaskInfo> getManagerInfo();

    void addRunnerOperation(Integer taskId, Integer operationId);
}
